package org.study.quartz.quartzmanager.service;

import org.study.quartz.quartzmanager.vo.ScheduleTaskInfo;
import org.study.quartz.quartzmanager.vo.SchedulerInfo;

import java.util.List;

/***
 * 定时任务管控
 */
public interface SchedulerManagerService {

    /***
     * 获取所有的任务信息
     * @return
     */
    SchedulerInfo getAllTaskList();


    /***
     * 获取计划中的任务列表信息
     * @return
     */
    List<ScheduleTaskInfo> getPlanedScheduleList();

    /***
     * 获取运行中的任务列表信息
     * @return
     */
    List<ScheduleTaskInfo> getRunningScheduleList();


    /***
     * 暂停任务操作
     * @param triggerName 任务名称
     * @param group 任务所在的组
     * @return
     */
    boolean pauseSchedule(String triggerName, String group);

    /***
     * 恢复任务执行
     * @param triggerName
     * @param group
     * @return
     */
    boolean resumeSchedule(String triggerName, String group);

    /***
     * 暂停所有任务信息
     * @return
     */
    boolean pauseAll();

    /***
     * 恢复所有任务信息
     * @return
     */
    boolean resumeAll();

    /***
     *
     * @return
     */
    boolean pauseScheduler();


    boolean startScheduler();

    /***
     * 立即执行任务
     * @param triggerName
     * @param group
     * @return
     */
    boolean runJobNow(String triggerName, String group);


    boolean addJob(String jobName, String jobGroup, String jobBeanName,String executeMethod, String cronExpression);

    boolean deleteJob(String jobName,String jobGroup);

}
